package com.xlh.service.system;

import com.xlh.dto.system.ResourceRelationDTO;
import com.xlh.param.course.ResourcesParam;
import com.xlh.pojo.system.Resource;
import com.xlh.pojo.system.ResourceExample;
import com.xlh.pojo.system.ResourceRelation;
import com.xlh.pojo.system.ResourceRelationExample;

import java.util.List;

/**
 * 资源
 * <p>
 * Created by lx on 2019/1/28.
 */
public interface SystemResourceService {

    List<Resource> queryResource(List<Long> ids);

    void insertResource(Resource resource);

    void updateResource(Resource resource);

    void deleteBatch(List<Long> ids);

    /**
     * 批量添加
     *
     * @param resources 资源
     */
    void insertBatch(List<Resource> resources);

    /**
     * 批量修改
     *
     * @param resources 资源
     */
    void updateBatch(List<Resource> resources);

    /**
     * 批量插入资源关联关系
     *
     * @param resourceRelations 资源关联关系
     */
    void insertBatchResourceRelation(List<ResourceRelation> resourceRelations);

    /**
     * 获取资源关联信息
     *
     * @param objIds 对象id集合
     * @param types  资源类型集合
     * @param names  名称集合
     * @param type   关联类型
     * @return
     */
    List<ResourceRelationDTO> getResourceRelationInfo(
            List<Long> objIds, List<Integer> types, List<String> names, Integer type);

    /**
     * 获取资源数据
     *
     * @param data 信息
     * @return
     */
    List<ResourceRelationDTO> queryResourceRelation(List<ResourcesParam> data);

    /**
     * 删除资源关联关系
     *
     * @param resourceRelationIds 资源关联关系id集合
     */
    void deleteResourceRelation(List<Long> resourceRelationIds);

    /**
     * 获取资源关联关系
     *
     * @param example
     * @return
     */
    List<ResourceRelation> queryResourceRelation(ResourceRelationExample example);

    /**
     * 查询资源
     *
     * @param example
     * @return
     */
    List<Resource> queryResource(ResourceExample example);

}
